package com.wlc.mapper;

import com.wlc.pojo.Employee;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface EmployeeMapper {

    /**
     * 查询员工总数
     */
    Long selectEmployeeCount(@Param("name") String name,
                             @Param("deptId") Long deptId,
                             @Param("workState") Integer workState);

    /**
     * 分页查询员工列表
     */
    List<Employee> selectEmployeeList(@Param("name") String name,
                                      @Param("deptId") Long deptId,
                                      @Param("workState") Integer workState,
                                      @Param("offset") Integer offset,
                                      @Param("limit") Integer limit);

    /**
     * 根据ID查询员工
     */
    Employee selectById(Long id);

    /**
     * 根据身份证号查询员工
     */
    Employee selectByIdNumber(String idNumber);

    /**
     * 查询所有员工
     */
    List<Employee> selectAll();

    /**
     * 根据部门ID查询员工
     */
    List<Employee> selectByDeptId(Long deptId);

    /**
     * 新增员工
     */
    int insert(Employee employee);

    /**
     * 更新员工
     */
    int update(Employee employee);

    /**
     * 删除员工
     */
    int deleteById(Long id);

    /**
     * 更新员工状态
     */
    int updateWorkState(@Param("id") Long id, @Param("workState") Integer workState);
}